package d1_com.itheima.sort;

import java.lang.reflect.Array;
import java.util.Arrays;
/**
 * 算法
 */
public class Test {
    public static void main(String[] args) {
        //冒泡排序
        int[] arr = {5, 3, 1, 2, 0};
        //选择排序
        int[] arr2 = {6, 8, 5, 9, 7};
        //选择排序(性能提升)
        int[] arr3 = {10, 11, 13, 14, 12};

        //冒泡排序
        for (int i = 0; i < arr.length - 1; i++) {
            for (int j = 0; j < arr.length - i - 1; j++) {
                if (arr[j] > arr[j + 1]) {
                    int temp = arr[j];
                    arr[j] = arr[j + 1];
                    arr[j + 1] = temp;
                }

            }
        }
        System.out.println(Arrays.toString(arr));

        //选择排序
        for (int i = 0; i < arr2.length - 1; i++) {
            // i = 0 第一轮   j = 1
            // i = 1 第二轮   j = 2
            // i = 2 第三轮   j = 3
            // i = 3 第三轮   j = 4
            for (int j = i + 1; j < arr2.length; j++) {
                // 判断当前位置是否大于后面位置处的元素值，若大于则交换。
                if (arr2[i] > arr2[j]) {
                    int temp = arr2[i];
                    arr2[i] = arr2[j];
                    arr2[j] = temp;
                }
            }
        }
        System.out.println(Arrays.toString(arr2));

        //选择排序
        for (int i = 0; i < arr3.length - 1; i++) {
            int minIndex = i;
            for (int j = i + 1; j < arr3.length; j++) {
                // 判断当前位置是否大于后面位置处的元素值，若大于则交换。
                if (arr3[minIndex] > arr3[j]) {
                    minIndex = j;
                }
            }
            if (i != minIndex) {
                int temp = arr3[i];
                arr3[i] = arr3[minIndex];
                arr3[minIndex] = temp;
            }
        }
        System.out.println(Arrays.toString(arr3));
    }
}
